17 - OpenID (5) - OIDC Hybrid Flow

這個 flow 和 OIDC Authorization Code Flow 主要的差別在於 step 2 可以指定回傳的內容
由 Client 將使用者導向 OpenID provider,其 url params 如下
GET /authorize?response_type=xxx
&client_id=xxx
&nonce=xxx
&state=xxx
&scope=xxx
&redirect_uri=xxx
response_type: 這裡的值如果為
client_id: 在 OpenID provider 所登記的 Client 的 IDnonce: 一個隨機值,之後會被放在 ID token 當中回傳給 Client
state: 當中包含了 Client 當前的狀態資訊,之後會用來比對 OpenID provider response 當中的 state 以確保前後一致scope: 代表這個請求所想要取得的使用者資訊,譬如 "openid profile email"redirect_uri: 在 step 5 OpenID provider 將使用者導回到 Client 時的 url在使用者輸入帳號密碼,驗證身份完畢之後 (step 3 & 4),OpenID provider 的回應如下
https://client_redirect_uri/callback
?code=xxx
&state=xxx
&id_token=xxx
是否回傳 code 或 id_token,就端看在 Step 2 的設定
之後, Step 6 & 7 就和 OIDC Authorization Code Flow 的內容相似